package com.framework.loippi.service;

/**
 * Created by longbh on 16/9/6.
 */
public interface RedisService {

    void delete(String key);

    void save(String key, Object object);

    <T> T get(String key, Class<T> type);

    void save(String key, Object object,int seconds);


    /** 添加一个列表*/
    void lpush(String key, Object...object);

    /**移除最后一个元素,返回值为已移除的元素*/
    <T> T rpop(String key, Class<T> type);

    /**移除并获取第一个元素,返回值为已移除的元素*/
    <T> T lpop(String key, Class<T> type);

    /** 移出并获取列表的第一个元素， 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。*/
    public <T> T blpop(String key, int timeout, Class<T> clazz);
    /** 从列表中弹出一个值，将弹出的元素插入到另外一个列表中并返回它； 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。*/
    public <T> T brpop(String key, int timeout, Class<T> clazz);
    /** 获取的值做递增操作*/
    public long incr(String key, long incr);
    /** 获取的值做递减操作*/
    public long decr(String key, long decr);
}
